package com.witmed.dao;
/**
 * 
 * @author ChenYouming
 *
 */

import java.util.List;
import java.util.Map;

import com.witmed.entity.Appointment;
import com.witmed.entity.Department;
import com.witmed.entity.Doctor;
import com.witmed.entity.Hospital;
import com.witmed.util.PageInfo;

public interface AppointmentOperationDao {
/**
 * 
 *通过关键字模糊分页查询医生
 * @param typeId   关键字类型
 * @param keyword  关键字
 * @param pagNum   页码
 * @param pageSize 每页显示的记录数
 * @return 返回一个医生的分页工具类
 */
	PageInfo<Doctor> searchByDoctorNameOrDepatmentNameOrhosptialName(int typeId, String keyword,int pagNum,int pageSize);

	/**
 * 多条件组合查询分页所有
 * @param map 用于存放前端传的条件值
 * @return 返回一个医生的分页工具类
 */
	PageInfo<Doctor> searchByhosptialNameOrDepatmentNameOrDoctorNameAll(Map<String, Object> map);

 /**
  * 查询所有医院
  * @return 返回医院集合
  */
	List<Hospital>  findHospital();
	/**
	 * 分组查找科室
	 *
	 * @return 科室集合
	 */
	List<Department> findDepartment();
	
	/**
	 * 查询预约时间
	  * @return 返回预约时间集合
	 * @param time  时间
	 * @param doctorId   医生编号
	 * 
	 */
	  
		List<Appointment>  findAppointment(String time ,int doctorId);
		
		/**
		 * 根据Id查询预约时间
		 */
		List<Appointment>  findAppointment(int appointmentId);
		
		/**
		 * 新增预约时间表数据
		 * @param appointment 
		 * @return 影响行数
		 */
		int insert(Appointment appointment);
		
		
		
		/**
		 * 修改预约时间表数据
		 * @param appointment
		 * @return  影响行数
		 */
		int update(Appointment appointment);
		
		/**
		 * 修改预约时间表数据
		 * @param appointment
		 * @return  影响行数
		 */
		int updateDoctor(Appointment appointment);
		
		/**
		 * 删除预约时间表数据
		 * @param appointmentid 预约时间id
		 * @return  影响行数
		 */
		int delete(int appointmentid);
		
		
}